The present invention relates to controlling the use of application programming interface (API) commands in programs which will execute in a runtime environment, and more specifically, to restricting the use of API commands at a granularity finer than a version or release of the runtime environment.
Computer programs may include embedded API commands in a high level language that may require translation into a lower level runtime programming language. The embedded API commands may be translated during a pre-compile translation step, which may convert the embedded API commands into call statements to a stub subroutine in the runtime programming language.
Embedded API commands may, for example, be used in transaction processing middleware and database batch processing. As a specific example, Customer Information Control System (CICS®) (CICS and all CICS-based trademarks are trademarks or registered trademarks of International Business Machines Corporation in the United States, and/or other countries) is middleware which supports transaction processing and may embed EXEC CICS commands within CICS® code that require translation at the time of program compilation.
A product supplier may choose to change the API commands that it makes available with each release of a given product. However, a provider of a runtime environment of the product may not want to make all of the changes in a release immediately available to the product's users. For example, a provider of a runtime environment of the product may want to prevent the use of a particular API command or feature until such time as the particular API command or feature has been carefully tested in the product's operating environment.
Currently, this may be achieved by restricting the use of the API command to the API command which was available in a previous release of the product. However, this may result in a lack of granularity for the product (i.e., program) user.